﻿using System;
using System.Collections.Generic;
using System.Text;

namespace FlashPay.Service.Interface
{
    using FlashPay.Entity;
    using FlashPay.Entity.Parameter;
    using FlashPay.Entity.Request.Payment;
    using FlashPay.Entity.Response.Payment;

    /// <summary>
    /// 实际付款业务接口			
    /// </summary>
    /// <remarks>2018-07-06 创建</remarks>
    public interface RecordRealService
    {
        /// <summary>
        /// 根据编号获取余额变化记录
        /// </summary>
        /// <param name="orderNo">编号</param>
        /// <returns>Company</returns>
        JResult<RecordRealGetResponse> GetByOrderNo(long orderNo);

        /// <summary>
        /// 转成功
        /// </summary>
        /// <param name="reqeust">参数</param>
        /// <returns></returns>
        JResult TurnSuccess(TurnReqeust reqeust);

        /// <summary>
        /// 转成功
        /// </summary>
        /// <param name="reqeust">参数</param>
        /// <returns></returns>
        JResult EmptyRecordTurnSuccess(TurnReqeust reqeust);

        /// <summary>
        /// 转失败
        /// </summary>
        /// <param name="reqeust">参数</param>
        /// <returns></returns>
        JResult TurnFailure(TurnReqeust reqeust);

        /// <summary>
        /// 获取付款记录的真实付款记录
        /// </summary>
        /// <returns></returns>
        PaymentRecordRealResult<List<PaymentRecordRealResponse>> GetPaymentRecordReals(PaymentRecordRealQuery query);

        /// <summary>
        /// 已实际付款记录
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        DataGrid<RecordRealResponse> GetPaymentRecordPager(RecordRealQuery query);
    }
}
